package com.crmweb.tool;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.crmweb.entity.Roles;
import com.crmweb.entity.Students;
//import com.example.demo.service.DynamicMessageService;


public class CommonUtil {

	/**
	 * 转换User类 为业务需要到UserDto
	 * 
	 * @param User
	 *            user
	 * @param String
	 *            rownum 行号
	 */

	/*
	 * public static UserDto getUserDtoByUser(User user, String rownum) {
	 * 
	 * DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); UserDto userDto
	 * = new UserDto(user.getId(), user.getLoginName(), user.getIsLockOut(),
	 * user.getCreateTime() == null ? "" : sdf.format(user.getCreateTime()),
	 * user.getLastLoginTime() == null ? "" : sdf.format(user.getLastLoginTime()),
	 * user.getLockTime() == null ? "" : sdf.format(user.getLockTime()),
	 * user.getPsdWrongTime() == null ? "" : String.valueOf(user.getPsdWrongTime()),
	 * user.getProtectEmail() == null ? "" : user.getProtectEmail(),
	 * user.getProtectMTel() == null ? "" : user.getProtectMTel(), rownum); return
	 * userDto; }
	 */

	/**
	 * 根据角色信息获取角色名称
	 * 
	 * @param List<Roles>
	 *            return List<String>
	 */
	public static List<String> getRolesNamesByRoless(List<Roles> RolesList) {
		List<String> RolesNameList = new ArrayList<String>();
		if (RolesList != null && RolesList.size() > 0) {
			for (Roles Roles : RolesList) {
				RolesNameList.add(Roles.getName());
			}
			return RolesNameList;
		}
		return null;
	}

	/**
	 * 转换Roles类 为业务需要到RolesDto
	 * 
	 * @param Roles
	 *            Roles
	 */

	/*
	 * public static RolesDto getRolesDtoByRoles(Roles Roles) {
	 * 
	 * RolesDto RolesDto = new RolesDto(Roles.getId(), Roles.getName(), Roles.getInt0() ==
	 * null ? "" : String.valueOf(Roles.getInt0()), Roles.getString0() == null ? "" :
	 * Roles.getString0());
	 * 
	 * return RolesDto; }
	 */
	/**
	 * 转换Roles类 为业务需要到RolesDtoEn
	 * 
	 * @param Roles
	 * @param String
	 *            rownum 行号
	 */

	/*
	 * public static RolesDtoEn getRolesDtoByRolesEn(Roles Roles, String rownum) {
	 * RolesDtoEn RolesDtoEn = new RolesDtoEn(Roles.getId(), Roles.getName(),
	 * Roles.getInt0() == null ? "" : String.valueOf(Roles.getInt0()),
	 * Roles.getString0() == null ? "" : Roles.getString0(), rownum); return
	 * RolesDtoEn; }
	 */

	/**
	 * 转换Module类 为业务需要到ModuleDto
	 * 
	 * @param Module
	 *            module
	 */
	/*
	 * public static ModuleDto getModuleDtoByModule(Module module) {
	 * 
	 * ModuleDto moduleDto = new ModuleDto(module.getId(), module.getName(),
	 * module.getParentId(), module.getPath() == null ? "" : module.getPath(),
	 * module.getOps() == null ? "" : module.getOps(), module.getWeight() == null ?
	 * 0 : module.getWeight(), module.getInt0() == null ? 0 : module.getInt0(), 0,
	 * ""); return moduleDto; }
	 */

	/**
	 * 获取返回客户端初始化响应的结果
	 */
	public static Map<String, Object> getResultMap() {
		Map<String, Object> resultMap = new HashMap<String, Object>();
		resultMap.put("message", "网络出现异常，请稍后重试");
		resultMap.put("remark", "");
		resultMap.put("success", false);
		return resultMap;
	}

	/** 将前台参数封装的StudentsDto对象转为后台需要的参数Students对象 */
//	public static Students getStudentsFromStuDto(StudentsDto stuDto) {
//		Students Students = new Students(stuDto.getName(), stuDto.getSex(), stuDto.getAge(), stuDto.getPhone(),
//				stuDto.getStuStatus(), stuDto.getPerState(), stuDto.getMsgSource(), stuDto.getSourceUrl(),
//				stuDto.getSourceKeyWord(), stuDto.getAddress(), stuDto.getNetPusherId(), stuDto.getAskersId(),
//				stuDto.getCreateUser(), stuDto.getIsBaoBei(), stuDto.getStuConcern(), stuDto.getQq(),
//				stuDto.getWeiXin(), stuDto.getContent(), stuDto.getLearnForward(), stuDto.getIsValid(),
//				stuDto.getRecord(), stuDto.getIsReturnVist(), getTimestampByStr(stuDto.getFirstVisitTime()),
//				stuDto.getIsHome(), getTimestampByStr(stuDto.getHomeTime()),stuDto.getLostValid(),stuDto.getIsPay(),
//				getTimestampByStr(stuDto.getPayTime()),stuDto.getMoney(),stuDto.getIsReturnMoney(),
//				stuDto.getIsInClass(),getTimestampByStr(stuDto.getInClassTime()),stuDto.getInClassContent(),
//				stuDto.getAskersContent(),stuDto.getIsDel(),stuDto.getFromPart(),stuDto.getZiXunName(),
//				stuDto.getReturnMoneyReason(),stuDto.getPreMoney(),getTimestampByStr(stuDto.getPreMoneyTime()),null);
//		return Students;
//	}
	
	/**转换时间格式的字符串为Timestamp类型*/
	public static Timestamp getTimestampByStr(String time){
		Timestamp timestamp=null;
		if(time!=null && !time.equals("")){
			timestamp=Timestamp.valueOf(time);
		}
		return timestamp;
	}

	/** 将前台参数封装的StudentsDto对象转为后台需要的参数Students对象 */
//	public static Netfollows getNetfollowsByNetfollowsDto(NetfollowsDto nfd) {
//		Netfollows Netfollows = new Netfollows(nfd.getStudentsId(), 
//				nfd.getStudentsName(), 
//				nfd.getUserId(), 
//				nfd.getContent(),
//				nfd.getFollowType(), 
//				getTimestampByStr(nfd.getFollowTime()), 
//				getTimestampByStr(nfd.getNextFollowTime()),
//				nfd.getFollowState());
//		return Netfollows;
//	}

	/**
	 * 获取需要分配学生的咨询师Id
	 */
//	public static String getAskersId(AskersService AskersService) {
//		String returnAskersId = null;
//		/**
//		 * 业务逻辑： 1.查询当天签到的所有未被分配学生的角色为咨询师的人员（按权重从高到低排序）
//		 * 2.取集合中的第一个人员返回，然后标注该人员的为已分配过学生 3.如果集合为空，则全部更新咨询师人员为未分配过学生
//		 */
//		List<Askers> AskersList = AskersService.getAskerssList();
//		if (AskersList == null || AskersList.size() == 0) {
//			AskersService.updateAll();
//			getAskersId(AskersService);// 递归调用（都分配一遍之后重新开始）
//		} else {
//			Askers Askers = AskersList.get(0);
//			Askers.setChangeState(ConstantUtil.YESSTR);
//			AskersService.updateAskers(Askers);
//			returnAskersId = Askers.getAskersId();
//		}
//		return returnAskersId;
//	}

	/**
	 * 业务需求： 根据学生Id获取相关的未打开的动态消息，如果有则返回该集合中的学生Id和未读消息个数
	 */
//	public static Map<String, Object> getStudentsIds(List<Students> stuList, DynamicMessageService dms) {
//		Map<String, Object> resultMap = new HashMap<String, Object>();
//		StringBuffer sb = new StringBuffer();
//		for (Students stu : stuList) {
//			sb.append(stu.getId() + ",");
//		}
//		String[] ids4=sb.toString().split(",");
//		List<Integer> list=new ArrayList<Integer>();
//		for(int j=0;j<ids4.length;j++){
//			list.add(Integer.parseInt(ids4[j]));
//		}
//		/*String StudentsIds = sb.toString().substring(0, sb.toString().length() - 1);
//		Map<String, Object> paramMap = new HashMap<String, Object>();
//		
//		 * paramMap.put("idsList", Arrays.asList(StudentsIds.split(",")));
//		 * paramMap.put("isOpen", ConstantUtil.NOSTR);
//		 */
//		//List<Integer> list = Arrays.asList(Integer.parseInt(StudentsIds.split(",")));
//		//List<Integer> lists = Integer.parseInt(list)
//		int count = dms.selDynamicMessageByidOpenandStudentsid(ConstantUtil.NOSTR, list);
//		if (count > 0) {
//			resultMap.put("StudentsIds", ids4);// 学生Id串
//			resultMap.put("count", count);// 未读消息个数
//			return resultMap;
//		}
//		return null;
//	}

	/**
	 * 为导出的学生信息创建一个excel文件格式
	 */
//	public static HSSFWorkbook createWb(String[] heads, List<Students> StudentsList) {
//		// 第一步，创建一个webbook，对应一个Excel文件
//		HSSFWorkbook wb = new HSSFWorkbook();
//		// 第二步，在webbook中添加一个sheet,对应Excel文件中的sheet
//		HSSFSheet sheet = wb.createSheet("Sheet");
//		// 第三步，在sheet中添加表头第0行
//		HSSFRow row = sheet.createRow(0);
//		// 第四步，创建单元格，并设置值表头 设置表头居中
//		HSSFCellStyle style = wb.createCellStyle();
//		style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
//		// 设置表头
//		for (int i = 0; i < heads.length; i++) {
//			HSSFCell cell = row.createCell(i);
//			cell.setCellValue(heads[i]);
//			cell.setCellStyle(style);
//		}
//		if (StudentsList == null || StudentsList.size() < 1) {
//			return wb;
//		}
//		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		// 第五步，写入实体数据
//		for (int i = 0; i < StudentsList.size(); i++) {
//			Students stu = StudentsList.get(i);
//			row = sheet.createRow(i + 1);
//			row.setRowStyle(style);//内容居中
//			row.createCell(0).setCellValue(stu.getName()); // 学员姓名
//			row.createCell(1).setCellValue(stu.getZiXunName()); // 姓名（咨询）
//			row.createCell(2).setCellValue(stu.getSex()); // 性别
//			row.createCell(3).setCellValue(stu.getAge()); // 年龄
//			row.createCell(4).setCellValue(stu.getPhone()); // 学员电话
//			row.createCell(5).setCellValue(stu.getStuStatus()); // 学历
//			row.createCell(6).setCellValue(stu.getPerState()); // 个人状态
//			row.createCell(7).setCellValue(stu.getAddress()); // 所在区域
//			row.createCell(8).setCellValue(stu.getQq()); // 学员QQ
//			row.createCell(9).setCellValue(stu.getWeiXin()); // 微信
//			row.createCell(10).setCellValue(stu.getMsgSource()); // 来源渠道
//			row.createCell(11).setCellValue(stu.getSourceUrl()); // 来源网址
//			row.createCell(12).setCellValue(stu.getSourceKeyWord()); // 来源关键词
//			row.createCell(13).setCellValue(stu.getStuConcern()); // 学习关注
//			row.createCell(14).setCellValue(stu.getIsBaoBei()); // 是否报备
//			row.createCell(15).setCellValue(stu.getFromPart()); // 来源部门
//			row.createCell(16).setCellValue(stu.getLearnForward()); // 课程方向
//			row.createCell(17).setCellValue(stu.getRecord()); // 打分
//		    row.createCell(18).setCellValue(stu.getIsValid()); // 是否有效
//		    row.createCell(19).setCellValue(stu.getIsReturnVist()); // 是否回访
//			row.createCell(20).setCellValue(stu.getFirstVisitTime()==null ? "" : sdf.format(stu.getFirstVisitTime())); // 首次回访时间
//			row.createCell(21).setCellValue(stu.getIsHome());// 是否上门
//			row.createCell(22).setCellValue(stu.getHomeTime()==null ? "" : sdf.format(stu.getHomeTime())); // 上门时间
//			row.createCell(23).setCellValue(stu.getPreMoney());// 定金金额
//			row.createCell(24).setCellValue(stu.getPreMoneyTime()==null ? "" : sdf.format(stu.getPreMoneyTime())); // 定金时间
//			row.createCell(25).setCellValue(stu.getIsPay()); // 是否缴费
//			row.createCell(26).setCellValue(stu.getMoney()); // 金额
//			row.createCell(27).setCellValue(stu.getLostValid());//无效原因
//			row.createCell(28).setCellValue(stu.getIsReturnMoney());//是否退费
//			row.createCell(29).setCellValue(stu.getReturnMoneyReason());//退费原因
//			row.createCell(30).setCellValue(stu.getIsInClass());//是否进班
//			row.createCell(31).setCellValue(stu.getInClassTime()==null ? "" : sdf.format(stu.getInClassTime()));//进班时间
//			row.createCell(32).setCellValue(stu.getInClassContent());//进班备注
//			row.createCell(33).setCellValue(stu.getAskersContent());//咨询师备注
//			row.createCell(34).setCellValue(stu.getContent());//创建人备注
//			row.createCell(35).setCellValue(stu.getAskersId());// 所属咨询师
//			row.createCell(36).setCellValue(stu.getCreateUser()); // 创建人
//			row.createCell(37).setCellValue(stu.getCreateTime()==null ? "" : sdf.format(stu.getCreateTime())); // 创建时间
//	   }
//		 return wb;
//	}

}
